// 去重
const arr = [1, 1, 2, 3, 4, 5, 6, 2, 4, 2, 1, 5];
console.log(
    [...new Set(arr)]
);




// 判断元素是否在集合中
const set1 = new Set([1, 2, 3, 4]);
console.log(set1.has(2));



// 求交集
const set2 = new Set([2, 4, 6, 8]);
const intersection = [...set1].filter((item) => set2.has(item));// 转换成数组实现
console.log(new Set(intersection));



// 差集
const difference = [...set1].filter((item) => !set2.has(item));
console.log(new Set(difference));



const set = new Set();
// 添加
set.add(1);
set.add(2);
set.add({ a: 1 });
set.add({ a: 2 });
// 判断是否存在
set.delete(1);// 可以删除
// set.delete({ a: 1 });// 不可以删除
console.log(set.has(1)); // 元素是否存在
console.log(set.size);// 集合大小
console.log(set.keys());// 集合key
console.log(set.values());// 集合 value，和 key 一至
console.log(set.entries());// 枚举展开





// 遍历,key, value都一样
for (let [key, value] of set.entries()) {
    console.log(key, value);
}



// 集合转数组
const myset = new Set();
myset.add(1);
myset.add(2);
console.log(
    Array.from(myset)
);




// 数组转集合
console.log(new Set([1, 2, 3, 4]));
